﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Svg;
using System.Drawing;
using HumanFace.Common;
using System.Runtime.Serialization;
using Commons;

namespace HumanFace.Entities.Base
{
    [DataContract]
    public class FaceBASE : Organ
    {
        private Ear _LeftEar;
        private Ear _RightEar;
        private Eye _LeftEye;
        private Eye _RightEye;
        private EyeBrow _LeftEyeBrow;
        private EyeBrow _RightEyeBrow;
        private Nose _Nose;
        private Lips _Lips;
        private Visage _Visage;
        private string _ImagePath;
        private SvgDocument _SVGTemplate;

        [DataMember]
        public Eye LeftEye
        {
            get { return _LeftEye; }
            set { _LeftEye = value; }
        }

        [DataMember]
        public Eye RightEye
        {
            get { return _RightEye; }
            set { _RightEye = value; }
        }
        [DataMember]
        public Ear LeftEar
        {
            get { return _LeftEar; }
            set { _LeftEar = value; }
        }

        [DataMember]
        public Ear RightEar
        {
            get { return _RightEar; }
            set { _RightEar = value; }
        }
        [DataMember]
        public EyeBrow LeftEyeBrow
        {
            get { return _LeftEyeBrow; }
            set { _LeftEyeBrow = value; }
        }

        [DataMember]
        public EyeBrow RightEyeBrow
        {
            get { return _RightEyeBrow; }
            set { _RightEyeBrow = value; }
        }

        [DataMember]
        public Nose Nose
        {
            get { return _Nose; }
            set { _Nose = value; }
        }

        [DataMember]
        public Lips Lips
        {
            get { return _Lips; }
            set { _Lips = value; }
        }

        [DataMember]
        public Visage Visage
        {
            get { return _Visage; }
            set { _Visage = value; }
        }
        //SvgDocument return etmesi sorun yaratıyor
        [IgnoreDataMember]
        public SvgDocument SVGTemplate
        {
            get { return _SVGTemplate; }
            set { _SVGTemplate = value; }
        }
        [IgnoreDataMember]
        protected string ImagePath
        {
            get { return _ImagePath; }
            set { _ImagePath = value; }
        }
        public FaceBASE()
        {
        }
        public FaceBASE(Dictionary<string, string> templates, NodeCollection pointList)
            : base(templates, pointList)
        {
        }
    }
}
